#include <stdio.h>
#include <stdlib.h>
#include <getch.h>
#include <string.h>
#include "student.h"
#include "main.h"
#include "tool.h"

Stu stu[100];//学生结构体
//学生界面功能如下

void find(void)//查询成绩
{	
	int max=0,min=100;
    double avg=0;
	printf("请输入学号：\n");
	int number;
	scanf("%d",&number);
	int i=0;
	for(i=0;i<100;i++)
	{
		if(stu[i].num==number)
		{
			printf("语文：%d 数学：%d 英语：%d\n",stu[i].chinese,stu[i].math,stu[i].english);
			break;
		}
	}
	if(i==100)
	{
		printf("输入学号有误，请重新查询\n");
		anykey_continue();
		return;
	}
	//语文
	for(int i=0;i<100;i++)
	{
		if(stu[i].sex)
		{
			if(stu[i].chinese>max)
			{
				max=stu[i].chinese;
			}
			if(stu[i].chinese<min)
			{
				min=stu[i].chinese;
			}
			avg=stu[i].chinese+avg;
		}
	}
	printf("语文 最高分: %d 最低分：%d 平均分：%f\n",max,min,avg/100);
	//数学
	 max=0;
	 min=100;
	 avg=0;
	for(int i=0;i<100;i++)
	{
		if(stu[i].sex)
		{
			if(stu[i].math>max)
			{
				max=stu[i].math;
			}
			if(stu[i].chinese<min)
			{
				min=stu[i].math;
			}
			avg=stu[i].math+avg;
		}
	}
	printf("数学 最高分: %d 最低分：%d 平均分：%f\n",max,min,avg/100);
	//英语 
	max=0;
	min=100;
	avg=0;
	for(int i=0;i<100;i++)
	{
		if(stu[i].english)
		{
			if(stu[i].english>max)
			{
				max=stu[i].english;
			}
			if(stu[i].english<min)
			{
				min=stu[i].english;
			}
			avg=stu[i].english+avg;
		}
	}
	printf("英语 最高分: %d 最低分：%d 平均分：%f\n",max,min,avg/100);
	anykey_continue();
}

void change(void)//修改密码
{
	char name[20];
	printf("请输入你的姓名:\n");
	scanf("%s",name);
	for(int i=0;i<100;i++)
	{
		if(!strcmp(stu[i].name,name))
		{
			printf("请输入重置后的密码");
			char a[7]={};
			scanf("%s",a);
			strcpy(stu[i].password,a);
			printf("重置成功！\n");
			anykey_continue();
			return;
		}
	}
	printf("查无此人，检查查询条件\n");
	anykey_continue();
}

void look(void)//查看个人信息
{
	int number;
	printf("请输入个人学号:\n");
	scanf("%d",&number);
	for(int i=0;i<100;i++)
	{
		if(stu[i].sex)
		{
			if(stu[i].num==number)
			{
				printf("姓名：%s 性别：%s 学号：%d\n",stu[i].name,'w'==stu[i].sex?"女":"男",stu[i].num);
				anykey_continue();
				return;
			}
		}
	}
	printf("查无此人，检查查询条件\n");
	anykey_continue();
}

void sTudent(void)//登录
{
	int cnt=0;
	char name[20];
	char password[7];
	printf("请输入您的姓名\n");
	scanf("%s",name);
	for(int i=0;i<100;i++)
	{
		if(stu[i].sex)
		{
			if(!strcmp(stu[i].name,name))
			{
			//判断该性名是否锁定
				if(stu[i].lock==1)
				{
					printf("帐号已锁定，请解锁\n");
					anykey_continue();
					return;
				}
				//判断是否第一次登录
				if(stu[i].password[0])
				{
				//不是零, 不是第一次登录。
					while(cnt<3)
					{
						printf("请输入您的密码\n");
						scanf("%s",password);
						if(!strcmp(password,stu[i].password))
						{
							printf("密码正确！\n");
							for(;;)
							{
								system("clear");
								printf("-------------------------------\n");
								printf("   1、查询成绩\n");
								printf("-------------------------------\n");
								printf("   2、修改密码\n");
								printf("-------------------------------\n");
								printf("   3、查询个人信息\n");
								printf("-------------------------------\n");
								printf("   0、退出系统\n");
								printf("-------------------------------\n");
								switch(getch())
								{
									case '1':find();  break;
									case '2':change();break;
									case '3':look();  break;
									case '0':
									return ;
								}
							}
						}
						else
						{
							printf("密码错误！\n");
							cnt++;
						}
					}
					//三次输错锁定
					printf("帐号已锁定，请解锁\n");
					stu[i].lock=1;
					anykey_continue();
					return;
				}	
				else //0，第一次登录
				{
					printf("这是您第一次登录，请设置您的密码！:\n");
					scanf("%s",stu[i].password);
					printf("设置成功！请重新登录！\n");
					anykey_continue();
					return;
				}
			}	
		}
	}
	printf("查无此人！\n");
	anykey_continue();
}

